import Vue from 'vue'
import Vuex from 'vuex'

import common from './common'

// 自动导入子模块（自动开启命名空间）
const moduleFn = require.context('./modules', false, /\.js$/i)
const modules = moduleFn.keys().reduce((perv, filepath) => {
  let value = moduleFn(filepath).default
  // 如果你的子模块中没有这与强制命名空间设置，我在统一处理一下
  value = { ...value, namespaced: true }
  let key = filepath.match(/\.\/(\w+)\.js/)[1]
  perv[key] = value
  return perv
}, {})

Vue.use(Vuex)

const store = new Vuex.Store({
  ...common,
  modules,
  plugins: []
})

export default store
